package com.itlong.cloud.property.service;

import com.itlong.cloud.POJO.DTO.property.PropertyPadBotDeliveryTaskDTO;
import com.itlong.cloud.POJO.VO.property.PropertyDeliveryTaskGetPageVO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      机器人派送任务业务处理层接口
 * </desc>
 *
 * @createDate 2021/1/7
 **/
public interface IPropertyDeliveryTaskService {


    /**
     * <desc>
     *      获取配送任务分页列表
     * </desc>
     *
     * @param deliveryTaskDTO 配送任务参数DTO
     * @return 配送任务分页列表
     * @Author Zhu.yj
     * @createDate  2021/1/12
     */
    Page<PropertyDeliveryTaskGetPageVO> getPage(PropertyPadBotDeliveryTaskDTO deliveryTaskDTO) throws Exception;

    /**
     * <desc>
     *      获取目标点列表
     * </desc>
     *
     * @return 目标点信息
     * @Author Zhu.yj
     * @createDate  2021/1/8
     */
    List<Map<String, Object>> getTargetPointList(String phoneNum) throws Exception;

    /**
     * <desc>
     *      修改配送任务状态
     * </desc>
     *
     * @param taskId 回调信息
     * @return
     * @Author Zhu.yj
     * @createDate  2021/1/12
     */
    boolean updateTaskStatus(String taskId, String status) throws Exception;

    /**
     * <desc>
     *      回调接收派送任务信息
     * </desc>
     *
     * @param taskJson 派送任务信息
     * @return
     * @Author Zhu.yj
     * @createDate  2021/1/13
     */
    boolean receiveDeliveryTaskInfo(String taskJson) throws Exception;

    /**
     * <desc>
     *      根据电话号码获取目标点
     * </desc>
     *
     * @param phoneNumber 电话号码
     * @return
     * @Author Zhu.yj
     * @createDate  2021/1/22
     */
    String getTargetPointId(String phoneNumber) throws Exception;
}
